
package com.yupi.yuaicodemother.ai.rag;

import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * EmbeddingStoreConfig 是一个 Spring 配置类，用于配置嵌入存储相关的 Bean。
 * 该类主要负责创建并返回一个基于内存的嵌入存储实例。
 */
@Configuration
public class EmbeddingStoreConfig {

    /**
     * 创建并返回一个 EmbeddingStore 实例，用于存储 TextSegment 的嵌入向量。
     * 这里使用 InMemoryEmbeddingStore 实现，将嵌入向量存储在内存中。
     * 通过 @Bean 注解将该方法返回的实例注册为 Spring Bean，方便在其他地方注入使用。
     * 
     * @return 一个基于内存的 EmbeddingStore<TextSegment> 实例
     */
    @Bean
    public EmbeddingStore<TextSegment> embeddingStore() {
        return new InMemoryEmbeddingStore<>();
    }
}